The present invention, generally, relates to network communication methods, systems and computer program products and, more particularly, to systems, methods and computer program products for performance testing of computer networks.
Companies are often dependent on mission-critical network applications to stay productive and competitive. To achieve this, information technology (IT) organizations preferably provide reliable application performance on a 24-hour, 7-day-a-week basis. In this demanding environment, frequent network expansion and day-to-day fire fighting often leave little time for IT managers to manage network performance proactively. Accordingly, IT managers typically rely on some form of system management and/or network management tools to help automate performance management tasks to increase the efficiency of the IT staffs. Even with these tools, IT staffs are typically required to commit resources to integrating and customizing the tools to work in the heterogeneous network environments which may include, for example, hardware from a variety of vendors, executing a variety of operating systems and communication protocols and supporting a variety of application programs for different end user requirements.
Various known system management products track specific information, such as the CPU utilization on a server, server paging and disk access activity, or client application response time. This information may be useful when solving problems on a network. These products can generally be categorized as passive systems or application monitors. This category typically is implemented as software agent technologies that reside on the client or server computers. These agents generally passively monitor live application transactions and monitor resource utilization. Products in this category include Patrol from BMC Software, Inc., FirstSense Agent from FirstSense Software, Inc., VitalAgent from INS, Luminate Software Corp., and Envive Corp. As they are passive application monitors, they typically support specific application programs. For example, Luminate Software and Envive support the SAP R/3 application. Their measurements are generally neither consistent nor repeatable, as a user""s interaction with a given application varies over time. Moreover, they are typically not suited to detecting system slowdowns or failures from the perspective of an end user. Operations for one such passive monitor are described in xe2x80x9cCharacterizing End-to-End Performance: A VitalSigns Whitepaper,xe2x80x9d VitalSigns Software, Inc. 1998.
Another approach to passive monitoring is directed to the network rather than the overall system. On the network side, element managers or passive network monitors are known which may address a specific segment or device on the network. Element managers are generally software designed to manage specific groups of devices, such as routers and switches. Passive network monitors are typically a combination of hardware and software that may, for example, monitor network traffic at the link layer or at the infrastructure devices. Products falling in this category include remote monitor (RMON) probes from NetScout Systems, Inc., Sniffer from Network Associates, NetMetrix from Hewlett-Packard, Application Expert from Optimal Networks Corp., EcoSCOPE from Compuware Corp., and Visual OnRamp from Visual Networks, Inc. These network management tools typically provide information such as packet loss, bit rates, and network utilization. This type of information may be helpful in fixing a network problem after the problem has been identified. However, as with the passive system monitors, these tools generally do not reflect network performance as experienced by a user. These tools are passive, in that they generally watch the network traffic which traverses a network segment or link, rather than actively creating traffic.
Passive network monitors sometimes include a basic scheduler to collect sample data from their data sources. A basic scheduler generally merely specifies the frequency (e.g., once every 15 minutes) at which the management console of the monitor should collect data from the data sources. Passive monitors are limited in that they are typically expensive to scale, and only see traffic that is on the network at the time.
Another category of system management tool is active application monitors. These are products that generally measure performance by actively emulating application transactions. These transactions are often referred to as xe2x80x9csyntheticxe2x80x9d transactions. Products in this category include Ganymede Software Inc.""s Chariot(copyright) and Pegasus(trademark) products, as described in U.S. Pat. No. 5,838,919 issued Nov. 17, 1998, U.S. Pat. No. 5,881,237 issued Mar. 9, 1999 and U.S. Pat. No. 5,937,165 issued Aug. 10, 1999; VeriServ from Response Networks, Inc. and SLM from Jyra Research Inc. VeriServ allows an operator to define the types of applications to be monitored, times and days, and the end user locations from which the transactions are to originate. The operator may also choose to define alarm thresholds. Agents installed at the end user location monitor actual sample application transactions to measure performance of the applications operating over the network environment. VeriServ automatically tests applications at a fixed interval. SLM provides the flexibility for the user to schedule synthetic transactions for any interval from 5 minutes to a year. However, as these approaches are also typically directed to a particular application and require that the applications be installed and operating to generate network traffic, they generally only address simple web and database transactions. Also, any new or custom applications may require extensive configuration by the users to allow the tester to interact with the applications. In addition, active network testers add traffic to the communication network being tested, thereby using network resources which would otherwise be available for users.
All of these approaches are limited in their ability to track network performance on a continuing basis in a manner which will reflect that performance from an end user perspective across a variety of hardware, operating systems and end user specific application programs while supporting multiple network protocols under actual operating conditions. This creates particular problems as networks are typically not static as new hardware and software application programs may be periodically added thereby changing the traffic characteristics on the network and the end user""s experience of network performance. This changing environment also makes it difficult if not impossible for any of these known tools to provide repeatable measurements over time for use in assessing changes in network performance while improving the efficiency of IT staffs rather than increasing their workload. It is increasingly important to analyze the actual performance of the network to be tested without the constraints and limitations of these existing tools.
The present invention provides methods, systems and computer program products for testing the performance of a communication network including a plurality of endpoint nodes executing application programs which utilize the communications network. A console node is provided on the network which may initiate operations by test agents (endpoint engines) executing on one or more of the plurality of endpoint nodes. The agents may generate network performance information using passive application monitoring and/or active endpoint pair based network testing responsive to scheduling instructions from the console node. This may potentially provide for coordinated access to the benefits of both types of network testing from the agents at the endpoint nodes using an integrated control flow from the console node. Specific application programs may be designated for passive monitoring and active test protocols may be provided based on an expected type of application communication traffic. In another aspect of the present invention, one of a plurality of types of transaction models defining the beginning and ending reference point for a transaction timing measurement may be provided to the endpoint nodes for use in passive application monitoring. The transaction model may be selected to best detect user perceived performance of the application program being monitored. In a further aspect of the present invention, the endpoint nodes may be automatically discovered by the console node through an exchange of communications over the communications network.
In one embodiment of the present invention, the performance of a communications network including a plurality of endpoint nodes is tested. A console node residing on a computer is provided to the network. A plurality of active network test connections associated with the plurality of endpoint nodes are defined, wherein each of the active network test connections is associated with a pair of the plurality of endpoint nodes and defines an endpoint node specific test protocol between the pair of the plurality of endpoint nodes to simulate communications traffic therebetween. A test schedule is defined for the active network test connections. In addition, a passive network test selection is designated for at least one of the endpoint nodes having an associated test schedule and an associated second endpoint node for execution of an associated active network test connection. The associated test schedule and the designated passive network test selection are communicated to the at least one of the endpoint nodes from the console node. Network performance test results are received from at least one of the at least one of the endpoint nodes and the associated second endpoint node at the console node based on the defined test schedule and the designated passive network test selection. The network communication test protocol may be defined based on a type of application communication traffic expected on the network.
In another embodiment of the present invention, at least one of the pair of endpoint nodes receives the associated test schedule and the designated passive network test selection. Passive monitoring of applications executing on the at least one of the endpoint nodes is activated responsive to the passive network test selection if passive network testing is requested. Active network testing is initiated based on the received test schedule. Network performance test results are reported to the console node based on the activated passive monitoring of applications and based on the initiated active network testing. The console node may be an application executing on a single computer device coupled to the network. In one embodiment, the at least one of the endpoint nodes communicates a partner endpoint node test protocol based on the endpoint node specific test protocol to the associated second endpoint node.
In one embodiment of the present invention, designating a passive network test selection further includes designating at least one application to be monitored and a port identification associated with the designated at least one application is communicated to the at least one of the endpoint nodes. The at least one of the endpoint nodes passively monitors at least one communication port of the at least one of the endpoint nodes, the at least one communication port being associated with the port identification, to obtain network performance test results associated with the designated at least one application. In one embodiment, an associated transaction model is also communicated for use in obtaining network performance test results associated with the at least one application and the network performance test results associated with the designated at least one application are generated based on the associated transaction model. The associated transaction model may be selected from the group consisting of client-delay, connect-disconnect and send-receive.
In a further embodiment of the present invention, the performance of a communications network including a plurality of endpoint nodes is tested. A console node residing on a computer is provided to the network. An active network test connection associated with a pair of the endpoint nodes is defined, the active network test connection defining an endpoint node specific test protocol between the pair of the endpoint nodes. A test schedule is defined for the active network test connection. In addition, a passive network test selection is designated for at least one of the pair of the endpoint nodes. The test schedule, including the endpoint node specific test protocol, and the designated passive network test selection are communicated to the at least one of the pair of the endpoint nodes from the console node. A partner endpoint node test protocol based on the endpoint node specific test protocol is communicated from the at least one of the pair of the endpoint nodes to the other of the pair of the endpoint nodes. Network performance test results are received from the pair of the endpoint nodes at the console node based on the test schedule and the designated passive network test selection.
In another aspect of the present invention, the performance of applications communicating over a communications network is monitored. Each of a plurality of applications are associated with a transaction model selected from a plurality of candidate transaction models. Network performance test results for the plurality of applications are obtained based on their respective transaction models. The candidate transaction models may include client-delay, connect-disconnect and send-receive.
In a further aspect of the present invention, endpoint nodes on a communications network are discovered. Inquiries are transmitted over the communications network to a plurality of candidate endpoint nodes using a User Datagram Protocol (UDP). Responses to the inquiries are received over the communications network using a Transmission Control Protocol (TCP). The inquiries may be transmitted responsive to a user request.
As will further be appreciated by those of skill in the art, while described above primarily with reference to method aspects, the present invention may also be embodied as systems and/or computer program products.